home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / win / whttpd14.zip / CGI-SRC / IMAGEMAP / UTIL.C < prev    next >
C/C++ Source or Header  |  1994-04-28  |  2KB  |  84 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define LF 10
  5. #define CR 13
  6.  
  7. void getword(char *word, char *line, char stop) {
  8.     int x = 0,y;
  9.  
  10.     for(x=0;((line[x]) && (line[x] != stop));x++)
  11.         word[x] = line[x];
  12.  
  13.     word[x] = '\0';
  14.     if(line[x]) ++x;
  15.     y=0;
  16.  
  17.     while((line[y++] = line[x++]) != '\0');
  18. }
  19.  
  20. char x2c(char *what) {
  21.     register char digit;
  22.  
  23.     digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
  24.     digit *= 16;
  25.     digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
  26.     return(digit);
  27. }
  28.  
  29. void unescape_url(char *url) {
  30.     register int x,y;
  31.  
  32.     for(x=0,y=0;url[y];++x,++y) {
  33.         if((url[x] = url[y]) == '%') {
  34.             url[x] = x2c(&url[y+1]);
  35.             y+=2;
  36.         }
  37.     }
  38.     url[x] = '\0';
  39. }
  40.  
  41.  
  42. void plustospace(char *str) {
  43.     register int x;
  44.  
  45.     for(x=0;str[x];x++) if(str[x] == '+') str[x] = ' ';
  46. }
  47.  
  48. int rind(char *s, char c) {
  49.     register int x;
  50.     for(x=strlen(s) - 1;x != -1; x--)
  51.         if(s[x] == c) return x;
  52.     return -1;
  53. }
  54.  
  55. int getline(char *s, int n, FILE *f) {
  56.     register int i=0;
  57.  
  58.     while(1) {
  59.         s[i] = (char)fgetc(f);
  60.  
  61.         if(s[i] == CR)
  62.             s[i] = fgetc(f);
  63.  
  64.         if((s[i] == 0x4) || (s[i] == LF) || (i == (n-1))) {
  65.             s[i] = '\0';
  66.             return (feof(f) ? 1 : 0);
  67.         }
  68.         ++i;
  69.     }
  70. }
  71.  
  72.  
  73. void send_fd(FILE *f, FILE *fd)
  74. {
  75.     char c;
  76.  
  77.     while (1) {
  78.         c = fgetc(f);
  79.         if(feof(f))
  80.             return;
  81.         fputc(c,fd);
  82.     }
  83. }
  84.